﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using WCFAvante;
using Comandos;
using Fabricas;
using System.Web;

    public class Service : IService
    {
        int respuesta = 0;
       
        //CRUD Cargo
        public int InsertarCargo(Cargo cargo)
        {
            Comandos.ComandoCargo.InsertarCargo insertar;
            insertar = FabricaComandosCargo.CrearComandoIngresar(cargo);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarCargo(Cargo cargo)
        {
            Comandos.ComandoCargo.EliminarCargo eliminar;
            eliminar = FabricaComandosCargo.CrearComandoEliminar(cargo);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarCargo(Cargo cargo)
        {
            Comandos.ComandoCargo.ModificarCargo modificar;
            modificar = FabricaComandosCargo.CrearComandoModificar(cargo);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public Cargo ConsultarCargo(Cargo cargo)
        {
            Comandos.ComandoCargo.ConsultarCargo consultar;
            consultar = FabricaComandosCargo.CrearComandoConsultar(cargo);
            cargo = consultar.Ejecutar();

            return cargo;
        }

        //CRUD Cliente
        public int InsertarCliente(Cliente cliente)
        {
            Comandos.ComandoCliente.InsertarCliente insertar;
            insertar = FabricaComandosCliente.CrearComandoIngresar(cliente);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarCliente(Cliente cliente)
        {
            Comandos.ComandoCliente.EliminarCliente eliminar;
            eliminar = FabricaComandosCliente.CrearComandoEliminar(cliente);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarCliente(Cliente cliente)
        {
            Comandos.ComandoCliente.ModificarCliente modificar;
            modificar = FabricaComandosCliente.CrearComandoModificar(cliente);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public Cliente ConsultarCliente(Cliente cliente)
        {
            Comandos.ComandoCliente.ConsultarCliente consultar;
            consultar = FabricaComandosCliente.CrearComandoConsultar(cliente);
            cliente = consultar.Ejecutar();

            return cliente;
        }

        //CRUD Contrato
        public int InsertarContrato(Contrato contrato)
        {
            Comandos.ComandoContrato.InsertarContrato insertar;
            insertar = FabricaComandosContrato.CrearComandoIngresar(contrato);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarContrato(Contrato contrato)
        {
            Comandos.ComandoContrato.EliminarContrato eliminar;
            eliminar = FabricaComandosContrato.CrearComandoEliminar(contrato);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }
        
        public int ModificarContrato(Contrato contrato)
        {
            Comandos.ComandoContrato.ModificarContrato modificar;
            modificar = FabricaComandosContrato.CrearComandoModificar(contrato);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }
       
        public Contrato ConsultarContrato(Contrato contrato)
        {
            Comandos.ComandoContrato.ConsultarContrato modificar;
            modificar = FabricaComandosContrato.CrearComandoConsultar(contrato);
            contrato = modificar.Ejecutar();

            return contrato;
        }

        //CRUD ContratoCargo
        public int InsertarContratoCargo(ContratoCargo contratoCargo)
        {
            Comandos.ComandoContratoCargo.InsertarContratoCargo insertar;
            insertar = FabricaComandosContratoCargo.CrearComandoIngresar(contratoCargo);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarContratoCargo(ContratoCargo contratoCargo)
        {
            Comandos.ComandoContratoCargo.EliminarContratoCargo eliminar;
            eliminar = FabricaComandosContratoCargo.CrearComandoEliminar(contratoCargo);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarContratoCargo(ContratoCargo contratoCargo)
        {
            Comandos.ComandoContratoCargo.ModificarContratoCargo modificar;
            modificar = FabricaComandosContratoCargo.CrearComandoModificar(contratoCargo);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public ContratoCargo ConsultarContratoCargo(ContratoCargo contratoCargo)
        {
            Comandos.ComandoContratoCargo.ConsultarContratoCargo modificar;
            modificar = FabricaComandosContratoCargo.CrearComandoConsultar(contratoCargo);
            contratoCargo = modificar.Ejecutar();

            return contratoCargo;
        }

        //CRUD ContratoElegibleCargo
        public int InsertarContratoElegibleCargo(ContratoElegibleCargo contratoElegibleCargo)
        {
            Comandos.ComandoContratoElegibleCargo.InsertarContratoElegibleCargo insertar;
            insertar = FabricaComandosContratoElegibleCargo.CrearComandoIngresar(contratoElegibleCargo);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarContratoElegibleCargo(ContratoElegibleCargo contratoElegibleCargo)
        {
            Comandos.ComandoContratoElegibleCargo.EliminarContratoElegibleCargo eliminar;
            eliminar = FabricaComandosContratoElegibleCargo.CrearComandoEliminar(contratoElegibleCargo);
            respuesta = eliminar.Ejecutar();
            return respuesta;
        }

        public int ModificarContratoElegibleCargo(ContratoElegibleCargo contratoElegibleCargo)
        {
            Comandos.ComandoContratoElegibleCargo.ModificarContratoElegibleCargo modificar;
            modificar = FabricaComandosContratoElegibleCargo.CrearComandoModificar(contratoElegibleCargo);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public ContratoElegibleCargo ConsultarContratoElegibleCargo(ContratoElegibleCargo contratoElegibleCargo)
        {
            Comandos.ComandoContratoElegibleCargo.ConsultarContratoElegibleCargo modificar;
            modificar = FabricaComandosContratoElegibleCargo.CrearComandoConsultar(contratoElegibleCargo);
            contratoElegibleCargo = modificar.Ejecutar();

            return contratoElegibleCargo;
        }

        //CRUD Direccion
        public int InsertarDireccion(Direccion direccion)
        {
            Comandos.ComandoDireccion.InsertarDireccion insertar;
            insertar = FabricaComandosDireccion.CrearComandoIngresar(direccion);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarDireccion(Direccion direccion)
        {
            Comandos.ComandoDireccion.EliminarDireccion eliminar;
            eliminar = FabricaComandosDireccion.CrearComandoEliminar(direccion);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarDireccion(Direccion direccion)
        {
            Comandos.ComandoDireccion.ModificarDireccion modificar;
            modificar = FabricaComandosDireccion.CrearComandoModificar(direccion);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public Direccion ConsultarDireccion(Direccion direccion)
        {
            Comandos.ComandoDireccion.ConsultarDireccion consultar;
            consultar = FabricaComandosDireccion.CrearComandoConsultar(direccion);
            direccion = consultar.Ejecutar();

            return direccion;
        }

        //CRUD Elegible
        public int InsertarElegible(Elegible elegible)
        {
            Comandos.ComandoElegible.InsertarElegible insertar;
            insertar = FabricaComandosElegible.CrearComandoIngresar(elegible);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarElegible(Elegible elegible)
        {
            Comandos.ComandoElegible.EliminarElegible eliminar;
            eliminar = FabricaComandosElegible.CrearComandoEliminar(elegible);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarElegible(Elegible elegible)
        {
            Comandos.ComandoElegible.ModificarElegible modificar;
            modificar = FabricaComandosElegible.CrearComandoModificar(elegible);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public Elegible ConsultarElegible(Elegible elegible)
        {
            Comandos.ComandoElegible.ConsultarElegible consultar;
            consultar = FabricaComandosElegible.CrearComandoConsultar(elegible);
            elegible = consultar.Ejecutar();

            return elegible;
        }

        //CRUD ElegibleCargo
        public int InsertarElegibleCargo(ElegibleCargo elegibleCargo)
        {
            Comandos.ComandoElegibleCargo.InsertarElegibleCargo insertar;
            insertar = FabricaComandosElegibleCargo.CrearComandoIngresar(elegibleCargo);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarElegibleCargo(ElegibleCargo elegibleCargo)
        {
            Comandos.ComandoElegibleCargo.EliminarElegibleCargo eliminar;
            eliminar = FabricaComandosElegibleCargo.CrearComandoEliminar(elegibleCargo);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarElegibleCargo(ElegibleCargo elegibleCargo)
        {
            Comandos.ComandoElegibleCargo.ModificarElegibleCargo modificar;
            modificar = FabricaComandosElegibleCargo.CrearComandoModificar(elegibleCargo);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public ElegibleCargo ConsultarElegibleCargo(ElegibleCargo elegibleCargo)
        {
            Comandos.ComandoElegibleCargo.ConsultarElegibleCargo consultar;
            consultar = FabricaComandosElegibleCargo.CrearComandoConsultar(elegibleCargo);
            elegibleCargo = consultar.Ejecutar();

            return elegibleCargo;
        }

        //CRUD Localizacion
        public int InsertarLocalizacion(Localizacion localizacion)
        {
            Comandos.ComandoLocalizacion.InsertarLocalizacion insertar;
            insertar = FabricaComandosLocalizacion.CrearComandoIngresar(localizacion);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarLocalizacion(Localizacion localizacion)
        {
            Comandos.ComandoLocalizacion.EliminarLocalizacion eliminar;
            eliminar = FabricaComandosLocalizacion.CrearComandoEliminar(localizacion);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarLocalizacion(Localizacion localizacion)
        {
            Comandos.ComandoLocalizacion.ModificarLocalizacion modificar;
            modificar = FabricaComandosLocalizacion.CrearComandoModificar(localizacion);
            respuesta = modificar.Ejecutar();
            return respuesta;
        }

        public Localizacion ConsultarLocalizacion(Localizacion localizacion)
        {
            Comandos.ComandoLocalizacion.ConsultarLocalizacion consultar;
            consultar = FabricaComandosLocalizacion.CrearComandoConsultar(localizacion);
            localizacion = consultar.Ejecutar();

            return localizacion;
        }

        //CRUD PersonaContacto
        public int InsertarPersonaContacto(PersonaContacto personaContacto)
        {
            Comandos.ComandoPersonaContacto.InsertarPersonaContacto insertar;
            insertar = FabricaComandosPersonaContacto.CrearComandoIngresar(personaContacto);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarPersonaContacto(PersonaContacto personaContacto)
        {
            Comandos.ComandoPersonaContacto.EliminarPersonaContacto eliminar;
            eliminar = FabricaComandosPersonaContacto.CrearComandoEliminar(personaContacto);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarPersonaContacto(PersonaContacto personaContacto)
        {
            Comandos.ComandoPersonaContacto.ModificarPersonaContacto modificar;
            modificar = FabricaComandosPersonaContacto.CrearComandoModificar(personaContacto);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public PersonaContacto ConsultarPersonaContacto(PersonaContacto personaContacto)
        {
            Comandos.ComandoPersonaContacto.ConsultarPersonaContacto consultar;
            consultar = FabricaComandosPersonaContacto.CrearComandoConsultar(personaContacto);
            personaContacto = consultar.Ejecutar();

            return personaContacto;
        }

        //CRUD Propuesta
        public int InsertarPropuesta(Propuesta propuesta)
        {
            Comandos.ComandoPropuesta.InsertarPropuesta insertar;
            insertar = FabricaComandosPropuesta.CrearComandoIngresar(propuesta);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarPropuesta(Propuesta propuesta)
        {
            Comandos.ComandoPropuesta.EliminarPropuesta eliminar;
            eliminar = FabricaComandosPropuesta.CrearComandoEliminar(propuesta);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarPropuesta(Propuesta propuesta)
        {
            Comandos.ComandoPropuesta.ModificarPropuesta modificar;
            modificar = FabricaComandosPropuesta.CrearComandoModificar(propuesta);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public Propuesta ConsultarPropuesta(Propuesta propuesta)
        {
            Comandos.ComandoPropuesta.ConsultarPropuesta consultar;
            consultar = FabricaComandosPropuesta.CrearComandoConsultar(propuesta);
            propuesta = consultar.Ejecutar();

            return propuesta;
        }

        //CRUD Telefono
        public int InsertarTelefono(Telefono telefono)
        {
            Comandos.ComandoTelefono.InsertarTelefono insertar;
            insertar = FabricaComandosTelefono.CrearComandoIngresar(telefono);
            respuesta = insertar.Ejecutar();

            return respuesta;
        }

        public int EliminarTelefono(Telefono telefono)
        {
            Comandos.ComandoTelefono.EliminarTelefono eliminar;
            eliminar = FabricaComandosTelefono.CrearComandoEliminar(telefono);
            respuesta = eliminar.Ejecutar();

            return respuesta;
        }

        public int ModificarTelefono(Telefono telefono)
        {
            Comandos.ComandoTelefono.ModificarTelefono modificar;
            modificar = FabricaComandosTelefono.CrearComandoModificar(telefono);
            respuesta = modificar.Ejecutar();

            return respuesta;
        }

        public Telefono ConsultarTelefono(Telefono telefono)
        {
            Comandos.ComandoTelefono.ConsultarTelefono consultar;
            consultar = FabricaComandosTelefono.CrearComandoConsultar(telefono);
            telefono = consultar.Ejecutar();
            
            return telefono;
        }    
    }
